/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.celularessuc.gco.neg;

import com.jjsoft.celularessuc.gco.dao.GenericController;
import com.jjsoft.celularessuc.gco.mdl.Sucursal;
import com.jjsoft.celularessuc.gco.util.AtributoInvalidoException;
import com.jjsoft.celularessuc.gco.util.IdDuplicadoException;
import com.jjsoft.celularessuc.gco.util.SucursalValidatorException;
import com.jjsoft.celularessuc.gco.util.ValidarAtributoUtil;
import java.util.List;

/**
 *
 * @author Johnny
 */
public class SucursalManager {
    GenericController<Sucursal> controladorSucursal = new GenericController<Sucursal>();
    public void crearSucursal(Sucursal sucursal) throws SucursalValidatorException
    {
        try {
            ValidarAtributoUtil.validarObjetoNulo("Sucursal", sucursal);
            ValidarAtributoUtil.validarStringNuloVacio("Nombre", sucursal.getNombre());
            if(controladorSucursal.create(sucursal).equals("1"))
            {
                throw new SucursalValidatorException(new IdDuplicadoException("Ya existe una sucursal con ese número de identificación",sucursal.getIdsucursal()));
            }
        } catch (AtributoInvalidoException ex) {
            throw new SucursalValidatorException(ex);
        }    
    }
    public Sucursal buscarPorNombre(String nombre)
    {
        try{
            Sucursal sucursal = controladorSucursal.findWhere(new Sucursal(), "nombre='"+nombre+"'").get(0);
            return sucursal;
        }catch(Exception ex)
        {
            return null;
        }
    }
    public void editarSucursal(Sucursal sucursal) throws SucursalValidatorException
    {
        try {
            ValidarAtributoUtil.validarObjetoNulo("Sucursal", sucursal);
            ValidarAtributoUtil.validarStringNuloVacio("Nombre", sucursal.getNombre());
            controladorSucursal.edit(sucursal);
        } catch (AtributoInvalidoException ex) {
            throw new SucursalValidatorException(ex);
        }  catch (Exception ex) {
            throw new SucursalValidatorException("Error desconocido");
        }
    }
    public List<Sucursal> listarSucursals()
    {
        return controladorSucursal.findWhere(new Sucursal(), "estado=0");
    }
    
   
    
    public void eliminarSucursal(Sucursal sucursal)
    {
        sucursal.setEstado(1);
        try {
            controladorSucursal.edit(sucursal);
        } catch (Exception ex) {
            ex.printStackTrace();
        } 
    }
    public Sucursal buscaPorId(int id)
    {
        return controladorSucursal.find(new Sucursal(), id);
    }
}
